package com.ksvip.next.components.redis.retry;

import com.github.rholder.retry.Attempt;
import com.github.rholder.retry.RetryListener;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class RetryLogListener implements RetryListener {
    @Override
    public <V> void onRetry(final Attempt<V> attempt) {
        // 第几次重试,(注意:第一次重试其实是第一次调用); 距离第一次重试的延迟; 重试结果: 是异常终止, 还是正常返回
        log.info("retry time : [{}]  retry delay : [{}]  hasException={}  hasResult={}", attempt.getAttemptNumber(),
                attempt.getDelaySinceFirstAttempt(), attempt.hasException(), attempt.hasResult());
        // 是什么原因导致异常
        if (attempt.hasException()) {
            log.info("causeBy={}", attempt.getExceptionCause().toString());
        } 
//        else {
//            // 正常返回时的结果
//            log.info("result={}", attempt.getResult());
//        }
//        log.info("************RetryLogListener listen over***********");
    }
}
